<?php
/**
 * @file classes/components/form/FieldPubId.php
 *
 * Copyright (c) 2014-2021 Simon Fraser University
 * Copyright (c) 2000-2021 John Willinsky
 * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
 *
 * @class FieldPubId
 *
 * @ingroup classes_controllers_form
 *
 * @brief A field for generating a pub id, like a DOI.
 */

namespace PKP\components\forms;

class FieldPubId extends Field
{
    /** @copydoc Field::$component */
    public $component = 'field-pub-id';

    /** @var string A localized label for the button to assign the pubid */
    public $assignIdLabel;

    /** @var string A localized label for the button to clear the pubid */
    public $clearIdLabel;

    /** @var string The journal/press initials to use when generating a pub id */
    public $contextInitials;

    /** @var bool If a %p in the pattern should stand for press (OMP). Otherwise it means pages (OJS). */
    public $isPForPress = false;

    /** @var string The issue number to use when generating a pub id */
    public $issueNumber;

    /** @var string The issue volume to use when generating a pub id */
    public $issueVolume;

    /** @var string A localized message when the pub id can not be generated due to missing information */
    public $missingPartsLabel;

    /** @var string The page numbers use when generating a pub id */
    public $pages;

    /** @var string The pattern to use when generating a pub id */
    public $pattern;

    /** @var string The pub id prefix for this context */
    public $prefix;

    /** @var string The publisher id to use when generating a pub id */
    public $publisherId;

    /** @var string Optional separator to add between prefix and suffix when generating pub id */
    public $separator = '';

    /** @var string The submission ID to use when generating a pub id */
    public $submissionId;

    /** @var string The publication ID to use when generating a pub id */
    public $publicationId;

    /** @var string The year of publication to use when generating a pub id */
    public $year;

    /**
     * @copydoc Field::getConfig()
     */
    public function getConfig()
    {
        $config = parent::getConfig();
        $config['assignIdLabel'] = $this->assignIdLabel;
        $config['clearIdLabel'] = $this->clearIdLabel;
        $config['missingPartsLabel'] = $this->missingPartsLabel;
        if (isset($this->contextInitials)) {
            $config['contextInitials'] = $this->contextInitials;
        }
        if (isset($this->issueNumber)) {
            $config['issueNumber'] = $this->issueNumber;
        }
        if (isset($this->issueVolume)) {
            $config['issueVolume'] = $this->issueVolume;
        }
        if (isset($this->pages)) {
            $config['pages'] = $this->pages;
        }
        if (isset($this->pattern)) {
            $config['pattern'] = $this->pattern;
        }
        if (isset($this->prefix)) {
            $config['prefix'] = $this->prefix;
        }
        if (isset($this->publisherId)) {
            $config['publisherId'] = $this->publisherId;
        }
        if (isset($this->submissionId)) {
            $config['submissionId'] = $this->submissionId;
        }
        if (isset($this->publicationId)) {
            $config['publicationId'] = $this->publicationId;
        }
        if (isset($this->year)) {
            $config['year'] = $this->year;
        }
        $config['isPForPress'] = $this->isPForPress;
        $config['separator'] = $this->separator;

        return $config;
    }
}
